library(tidyverse)
library(plotly)
library(lubridate)
library(ggplot2)
library(gganimate)
library(devtools)
library(gifski)
library(png)
library(leaflet)
Find a data set on Transportation and create one interactive plot using plotly. All of your axes, titles, subtitles, and captions must be labeled and all of the visualizations must be colorful and easy to read.
#install.packages("plotly")
#install.packages("htmlwidgets")
library(plotly)
packageVersion('plotly')
flights <- read.csv("feb-20-us-flight-delay.csv", stringsAsFactors = TRUE)
flights
originflights
originflights <- flights %>% group_by(DAY_OF_WEEK) %>% summarise(Avg = mean(DISTANCE))
a <- ggplot(originflights, aes(x = DAY_OF_WEEK, y = Avg, fill = DAY_OF_WEEK)) +
geom_bar(stat = "identity") +
theme(legend.position = "none") +
labs(title = "Average Distance of Days of Week",
subtitle = "The graph shows the average flight distance of every day of the week",
x = "Days of the Week",
y = "Average Distance")
a

#ggplotly(a)
aF <- ggplot(flights, aes(x = DAY_OF_WEEK,
fill = DISTANCE,
color = ORIGIN)) +
geom_bar(position = "dodge") +
theme(legend.position = "none") +
labs(title = "Distance of Days of Week",
subtitle = "The graph shows the distribution for flight distance of every day of the week",
x = "Days of the Week",
y = "Distance")
ggplotly(aF)
position_dodge requires non-overlapping x intervals
ggsave(file = "DistanceDaysWeek.png", plot = aF)
Saving 7.29 x 4.5 in image

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShwbG90bHkpDQoNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShnZ2FuaW1hdGUpDQpsaWJyYXJ5KGRldnRvb2xzKQ0KbGlicmFyeShnaWZza2kpDQpsaWJyYXJ5KHBuZykNCmxpYnJhcnkobGVhZmxldCkNCmBgYA0KDQoNCg0KLS0tDQp0aXRsZTogIkRpc2N1c3Npb24gMyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCkZpbmQgYSBkYXRhIHNldCBvbiBUcmFuc3BvcnRhdGlvbiBhbmQgY3JlYXRlIG9uZSBpbnRlcmFjdGl2ZSBwbG90IHVzaW5nIHBsb3RseS4gQWxsIG9mIHlvdXIgYXhlcywgdGl0bGVzLCBzdWJ0aXRsZXMsIGFuZCBjYXB0aW9ucyBtdXN0IGJlIGxhYmVsZWQgYW5kIGFsbCBvZiB0aGUgdmlzdWFsaXphdGlvbnMgbXVzdCBiZSBjb2xvcmZ1bCBhbmQgZWFzeSB0byByZWFkLiANCg0KYGBge3J9DQojaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikNCiNpbnN0YWxsLnBhY2thZ2VzKCJodG1sd2lkZ2V0cyIpDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KHBsb3RseSkNCnBhY2thZ2VWZXJzaW9uKCdwbG90bHknKQ0KYGBgDQoNCmBgYHtyfQ0KZmxpZ2h0cyA8LSByZWFkLmNzdigiZmViLTIwLXVzLWZsaWdodC1kZWxheS5jc3YiLCBzdHJpbmdzQXNGYWN0b3JzID0gVFJVRSkNCmZsaWdodHMNCmBgYA0KDQpgYGB7cn0NCm9yaWdpbmZsaWdodHMNCmBgYA0KDQoNCmBgYHtyfQ0Kb3JpZ2luZmxpZ2h0cyA8LSBmbGlnaHRzICU+JSBncm91cF9ieShEQVlfT0ZfV0VFSykgJT4lIHN1bW1hcmlzZShBdmcgPSBtZWFuKERJU1RBTkNFKSkNCmEgPC0gZ2dwbG90KG9yaWdpbmZsaWdodHMsIGFlcyh4ID0gREFZX09GX1dFRUssIHkgPSBBdmcsIGZpbGwgPSBEQVlfT0ZfV0VFSykpICsNCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsgDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKw0KICBsYWJzKHRpdGxlID0gIkF2ZXJhZ2UgRGlzdGFuY2Ugb2YgRGF5cyBvZiBXZWVrIiwNCiAgICAgICBzdWJ0aXRsZSA9ICJUaGUgZ3JhcGggc2hvd3MgdGhlIGF2ZXJhZ2UgZmxpZ2h0IGRpc3RhbmNlIG9mIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayIsDQogICAgICAgeCA9ICJEYXlzIG9mIHRoZSBXZWVrIiwNCiAgICAgICB5ID0gIkF2ZXJhZ2UgRGlzdGFuY2UiKSANCmENCiNnZ3Bsb3RseShhKQ0KYGBgDQoNCg0KDQpgYGB7cn0NCmFGIDwtIGdncGxvdChmbGlnaHRzLCBhZXMoeCA9IERBWV9PRl9XRUVLLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbCA9IERJU1RBTkNFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IE9SSUdJTikpICsgDQogICAgICAgICAgICAgIGdlb21fYmFyKHBvc2l0aW9uID0gImRvZGdlIikgKyANCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIGxhYnModGl0bGUgPSAiRGlzdGFuY2Ugb2YgRGF5cyBvZiBXZWVrIiwNCiAgICAgICBzdWJ0aXRsZSA9ICJUaGUgZ3JhcGggc2hvd3MgdGhlIGRpc3RyaWJ1dGlvbiBmb3IgZmxpZ2h0IGRpc3RhbmNlIG9mIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayIsDQogICAgICAgeCA9ICJEYXlzIG9mIHRoZSBXZWVrIiwNCiAgICAgICB5ID0gIkRpc3RhbmNlIikgDQoNCmdncGxvdGx5KGFGKQ0KZ2dzYXZlKGZpbGUgPSAiRGlzdGFuY2VEYXlzV2Vlay5wbmciLCBwbG90ID0gYUYpDQpgYGANCg0K